package controller;

import lombok.Data;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import pojo.UserInf;
import service.UserInfService;
import util.R;

import javax.annotation.Resource;
import java.io.Serializable;
import java.util.List;

/**
 * 用户控制器层
 */
@Controller
@RequestMapping("/userInf")
public class UserInfApi {
    //引入用户业务层接口
    @Resource(name = "userService")
    private UserInfService userInfService;

    /**
     * 根据id查询用户信息
     * @param id
     * @return
     */
    @GetMapping("/{id}")
    @ResponseBody
    public UserInf getById(@PathVariable Serializable id){
        return userInfService.getById(id);
    }

    /**
     * 查询用户的所有信息
     * @param current 当前页
     * @param size 每页显示条数
     * @return
     */
    @GetMapping()
    @ResponseBody
    public List<UserInf> getList(Integer current,Integer size){
        if(current==null){
            //如果没有传入当前页，默认是第一页
            current=1;
        }
        if(size==null){
            //如果没有传入每页展示条数，默认是3条
            size=3;
        }
        return userInfService.getList(current,size);
    }

    /**
     * 添加用户
     * @param userInf
     */
    @PostMapping()
    @ResponseBody
    public R insert(UserInf userInf){
        int rows = userInfService.insert(userInf);
        return result(rows,userInf);
    }

    /**
     * 根据用户id修改用户信息
     * @param userInf
     * @return
     */
    @PutMapping("/{id}")
    @ResponseBody
    public R updateById(UserInf userInf,@PathVariable Long id){
        //把id赋值给userInf
        userInf.setId(id);
        int rows = userInfService.updateById(userInf);
        if(rows>0){
            return R.ok().setData(userInf);
        }else {
            return R.error();
        }
    }

    /**
     * 根据id删除用户
     * @param id
     * @return
     */
    @DeleteMapping("/{id}")
    @ResponseBody
    public R deleteById(@PathVariable Serializable id){
        int rows = userInfService.deleteById(id);
        return result(rows,rows);
    }

    private R result(int rows,Object data){
        if(rows>0){
            return R.ok().setData(data);
        }else {
            return R.error();
        }
    }
}
